package net.xdlass.config;

import com.google.code.kaptcha.Constants;
import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Properties;

@Configuration
public class CaptchaConfig {


    /**
     * 验证码配置类
     * @return
     */
    /**
     * 创建并配置一个DefaultKaptcha实例
     * 该实例用于生成验证码图片
     *
     * @return 配置好的DefaultKaptcha实例
     */
    @Bean
    @Qualifier("captchaProducer")
    public DefaultKaptcha kaptcha() {
        DefaultKaptcha kaptcha = new DefaultKaptcha();
        Properties properties = new Properties();
        // 以下是一些已注释的属性设置示例，可根据需要取消注释并进行配置
        // 设置验证码边框
        //		properties.setProperty(Constants.KAPTCHA_BORDER, "yes");
        // 设置边框颜色
        //		properties.setProperty(Constants.KAPTCHA_BORDER_COLOR, "220,220,220");
        // 设置验证码图片宽度
        //		properties.setProperty(Constants.KAPTCHA_IMAGE_WIDTH, "147");
        // 设置验证码图片高度
		properties.setProperty(Constants.KAPTCHA_IMAGE_HEIGHT, "34");
        // 设置验证码字体大小
        //		properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_SIZE, "25");
        // 设置验证码个数
        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "4");
        // 设置字体间隔
        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_SPACE, "8");
        // 设置干扰线颜色
        //		properties.setProperty(Constants.KAPTCHA_NOISE_COLOR, "white");
        // 设置干扰实现类为无干扰
        properties.setProperty(Constants.KAPTCHA_NOISE_IMPL, "com.google.code.kaptcha.impl.NoNoise");
        // 设置图片样式为水波纹效果
        properties.setProperty(Constants.KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.WaterRipple");
        // 设置文字来源为数字
        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_STRING, "0123456789");
        // 创建Config对象并传入属性
        Config config = new Config(properties);
        // 设置Kaptcha的配置
        kaptcha.setConfig(config);
        // 返回配置好的Kaptcha实例
        return kaptcha;
    }

}